/**
 *	@file	pokegear.h
 *	@brief	ポケギアモジュール　メインヘッダ
 *	@author	Miyuki Iwasawa
 *	@date	07.06.15
 */

#ifndef __H_POKE_GEAR_H__
#define __H_POKE_GEAR_H__

#include "field/field_common.h"
#include "field/sysflag.h"
#include "system/keytouch_status.h"
#include "tel/pmtel_def.h"
#include "fielddata/maptable/zone_id.h"

///外部公開構造体
#define PGMAP_SHINTO_ZONE	(ZONE_ID_D51R0101)
#define PGMAP_SHIP_ZONE		(ZONE_ID_P01R0301)

///空を飛ぶアプリ呼び出しモードID
typedef enum{
 PGSKY_CALL_JUMP,	//<空を飛ぶ
 PGSKY_CALL_BG,		//<BG話しかけ
 PGSKY_CALL_MAX,
}PGSKY_CALL_MODE;

///ポケギアアプリ　呼び出しモード
typedef enum{
 PGEAR_CALL_NORMAL,	//通常
 PGEAR_CALL_TEL,	//電話着信
}PGEAR_CALL_MODE;

///ポケギアパラメータ引継ぎ構造体
typedef struct {
	u8	mode;	///<呼び出しモード
	u8	key_mode;	///<呼び出しキーモード
	u16	fld_bgm;	///<フィールドBGMナンバー取得

	u8	tel_number;		///<電話着信ナンバーPNTEL_NUMBER_XXXX(pokegear/tel/pmtel_number.h)
	u8	tel_type;	///<電話着信イベントTEL_CALLUP_XXXX(pokgear/tel/pmtel_def.h)
	u8	tel_id;		///<電話着信イベントID TEL_CALLUP_XXXX(pokgear/tel/pmtel_def.h)
	u8	player_sex;		///<自機性別
	int	player_x;		///<自機フィールド座標X
	int	player_z;		///<自機フィールド座標Z
	u16	player_zone;	///<自機がいるゾーンのID
	u16	field_zone;		///<自機がいるとみなすフィールドゾーンID

	int	retval;			///<戻り値
	int	ret_x,ret_z;
	u16	ret_zone;		///<選択ゾーンの戻り値

	u8	tmap_gx;
	u8	tmap_gz;

	SAVEDATA*	save;	///<セーブデータ引継ぎポインタ
	const KEYTOUCH_STATUS*	pKTStatus;	///<キーorタッチステータス
#ifdef PM_DEBUG
	int	debug_f;	//デバッグmake時のみ有効なフラグ
#endif	//PM_DEBUG
}PGEAR_PARAM;

///オーバーレイプロセス
extern PROC_RESULT PokeGearProc_Init( PROC *proc,int *seq);
extern PROC_RESULT PokeGearProc_Main( PROC *proc,int *seq);
extern PROC_RESULT PokeGearProc_End( PROC *proc,int *seq);
///オーバーレイプロセス定義
extern PROC_RESULT PGearSkyProc_Init( PROC *proc,int *seq);
extern PROC_RESULT PGearSkyProc_Main( PROC *proc,int *seq);
extern PROC_RESULT PGearSkyProc_End( PROC *proc,int *seq);


#endif	//__H_POKE_GEAR_H__